1. Field of the Invention
The present invention relates to a data structure for a universal printer description file, the description file being used for configuring a printer driver in a computer system that is utilizing any one of several operating systems, thereby enabling the printer driver to provide the necessary interface between application programs in the computer system and the printer.
2. Description of the Related Art
Printers are typically interfaced to a client device, such as a computer, through a software module commonly known as a printer driver. Currently, most printer drivers are based on a monolithic model whereby the printer driver can be configured to drive multiple different printers. To drive any one particular printer, a printer description file corresponding to the printer must be provided to the driver so as to configure the driver to support the particular printer. Information relating to a particular printer, such as the capabilities, functions and commands supported by the printer, is stored within the printer description file for subsequent access and processing by the printer driver in order to configure the printer driver.
Because of compatibility issues, a different generic printer driver is required for each different operating system. Thus, the generic printer driver for a Microsoft Windows 95 operating system is different from the generic printer driver for the Apple Macintosh operating system. Likewise, a different printer description file is required for each different operating system, in correspondence with each different printer driver. For instance, Microsoft Windows NT commonly utilizes a printer description file format known as a Generic Printer Description (xe2x80x9cGPDxe2x80x9d) file, and Apple computers commonly utilize a different printer description file format developed by Adobe Systems, Inc. known as a Postscript Printer Description (xe2x80x9cPPDxe2x80x9d) file.
It is also common for a proprietary printer driver to be developed by a printer manufacturer in order to support that manufacturer""s respective family of printers. These proprietary printer drivers are usually developed because a generic printer driver that is commonly used in a particular operating system fails to implement fully the functionality or the user interface capabilities supported by the manufacturer""s printers. In correspondence to the proprietary printer driver, a proprietary printer description file is also typically required for the configuration of the proprietary printer driver to support any one particular printer. Again, for each particular printer, a different proprietary printer description file must be created to support each of the various operating systems.
Several problems are evident in these arrangements. First, a multitude of printer description files are needed to support each particular printer in the various operating systems, thereby wasting significant time and resources of system software developers and of systems managers in the creation and implementation of such printer description files. Second, the different printer description file formats necessary for supporting a particular printer in the various operating systems tend to be inconsistent regarding their implementation of the functionality and user interface capabilities of the particular printer. Third, the different formats of the printer description files require unique development tools and unique parsing tools for each respective format thereby increasing development time, complexity and cost. Fourth, printer description files currently cannot be extended to add description data related to additional printer features and capabilities without also modifying the corresponding printer driver to process these new features and capabilities. These problems result in an inconsistent presentation to the printer""s users of the printer""s capabilities and functionality. These problems also result in significantly increased development time and cost for systems software developers to develop and implement printer drivers and their respective printer description files.
To address these problems, the Internet Engineering Task Force (IETF) Printer Working Group (PWG) has called for the development of a so-called xe2x80x9cUniversal Printer Description File Format.xe2x80x9d Thus, the PWG has circulated a Software Requirements Specification, version 0.04, Nov. 12, 1998, that sets out functional and other requirements for a suitable file format. However, a suitable file format has not yet been proposed.
It is an object of the invention to define a data structure for a universal printer description data file (xe2x80x9cUPDFxe2x80x9d) which can be implemented for virtually any printer and virtually any operating system, thereby enabling a printer driver to interface with the printer regardless of the operating system being utilized by the computer system. It is also an object of the present invention to provide for extensibility of the data structure so as to allow for the addition of printer description data not initially provided for in the data structure. These and other objects, features and advantages are accomplished by the present invention.
In a first aspect, the present invention provides for the definition of a universal printer data structure composed of data elements for storing description data related to a printer. A printer-specific implementation of the universal printer data structure definition is then created by populating the defined data structure with description data related to the specific printer. The printer-specific data structure is retained in a universal printer description file which is then disposed within a memory area for access and processing by a printer driver for configuring the printer driver to interface with the specific printer.
More specifically, the universal printer data structure is defined through the use of an extensible markup language which has a strict syntax for defining the printer-related data elements and their corresponding attributes including the use of start and end tags which encapsulate each data element. The extensible markup language also provides for the implementation of a strict, predetermined hierarchical data structure whereby the order and the inter-relationships of the data elements and their corresponding attributes are rigidly defined. Furthermore, the extensible markup language allows for the addition of data elements that are not provided for in the predetermined universal printer data structure definition.
A universal printer description file is created by generating a specific implementation of the universal printer data structure definition. The universal printer description file therefore requires strict compliance with the syntax of the extensible markup language and with the predetermined hierarchy of data elements and corresponding attributes defined within the universal printer data structure. The printer-specific data structure can, however, be extended beyond the universal printer data structure definition for the addition of unique data elements corresponding to characteristics and features that are unique to a specific printer. Compliance with a predetermined data structure definition makes the universal printer description file virtually independent of any specific operating system. The present invention therefore provides for a universal printer data structure definition that can be used to create a universal printer description file for virtually any printer in virtually any operating system that supports the extensible markup language.
In the preferred form, the universal printer data structure definition is created using Extensible Markup Language (xe2x80x9cXMLxe2x80x9d) such that the data elements and their corresponding attributes are defined in a strict, hierarchical manner. Pursuant to XML, the universal printer data structure definition is retained within a file known as a Document Type Description (xe2x80x9cDTDxe2x80x9d) file. The syntax of XML and the structural hierarchy of the data elements within the universal printer data structure definition of the DTD file must be complied with when creating a universal printer description file corresponding to a specific printer. The universal printer description file is then disposed within a memory area for access by a printer driver to enable configuration of the printer driver for supporting the printer in virtually any operating system environment that supports XML.
For example, a universal printer data structure definition is provided within a DTD file which includes a predetermined set of data elements and corresponding attributes in a predetermined fixed hierarchy to provide for the storing of printer description data such as a printer""s capabilities, characteristics, features and controls. A universal printer data structure defined in the DTD is then populated with printer description data representing a particular printer in order to create a universal printer description file for that particular printer. Additional features or capabilities of the particular printer that are not provided for in the universal printer data structure definition can be accounted for by adding new data elements within the universal printer description file. The universal printer description file is disposed within a memory area and is then accessed and used to configure a printer driver in virtually any operating system to interface with the particular printer described in the universal printer description file.
By virtue of this arrangement, the present invention provides for a standardized, hierarchical universal printer description data structure definition which can be used to create a universal printer description file corresponding to a particular printer for use on virtually any operating system. The present invention therefore reduces the need for a multitude of printer description files for supporting a particular printer in multiple operating systems.
This brief summary has been provided so that the nature of the invention may be understood quickly. A more complete understanding of the invention can be obtained by reference to the following detailed description of the preferred embodiment thereof in connection with the attached drawings.